新入社員のためのWAF(Web Application Firewall)入門
佐々木です。クラスメソッドも4月から新しい仲間が増えました。今日はWAF(Web Application Firewall)の基本的な知識を整理してみました。
基礎知識
WAFとは
WAF(Web Application Firewall)とは、Webアプリケーションの脆弱性を狙う悪意ある通信(攻撃)から、Webアプリケーションを保護するものです。本来論で言えば、Webアプリケーションに脆弱性があるのであればWebアプリケーションを修正するのが正しい対応です。しかし未知の脆弱性があったり、修正コストが大きくWebアプリケーションでの対応が難しい場合や、緊急度が高くすぐに防御しなければならないが修正が間に合わない場合も、残念ながらあります。ユーザーとWebアプリケーションの間にWAFを入れることで、悪意ある通信を防ぐことが出来ます。
ファイアウォールとは
ファイアウォールは、IPヘッダやTCP/UDPヘッダを使って、通過を許可する通信と通過を拒否する通信を仕分けるものです。通信元のIPアドレス(Layer3)や、Webアプリケーションで一般的に使われる80/tcp(HTTP)や443/tcp(HTTPS)といった通信ポート(Layer4)で許可/拒否を設定するため、Webアプリケーションへの通信の中身を見るわけではありません。
(※近年ではアプリケーションレイヤのレベルで通信の中身を見るLayer7ファイアウォールというのもありますがここでは割愛します)
IDS/IPSとは
IDSはInstrusion Detection Systemの略称であり、日本語では「侵入検知システム」と呼ばれます。IDSは大きくネットワーク型(Network IDS/NIDS)とホスト型IDS(Host IDS/HIDS)に分類されます。両者とも、検知した際にアラートを表示・記録・通知を行うことで管理者が迅速な対応を行えることを目的としています。ネットワーク型はネットワークパケットを監視してルールベースのパターンマッチングや異常通信検出を行い、不正アクセスや悪意ある通信と思われるパケットを検知します。ホスト型はサーバ上のI/Oを監視し、不正アクセスと思われる行為を検知します。検知手法としてはシステムログの監視や、ある瞬間のファイルスナップショットとの差異を確認することによる改ざん検知などがあります。
また検知と同時に通信の遮断も行えるものがあり、一般的にIDPやIPS(Intrusion Detection and Protection System)と呼ばれます。現在Firewallなどのネットワーク機器に組み込まれたIDPはProtectionの機能を備えたものが主流です。
IPSはネットワーク通信に対する防御ですので、アプリケーションレイヤまで見ることが出来ますが、難読化された通信や動的に変更するコンテンツへの攻撃を完全に防ぐことは出来ません。
WAFとファイアウォール・IPSの違い
コンテンツやWebアプリケーションのレイヤーで、悪意ある通信を防ぐことが出来るのがWAFです。
WAFの種類
クラウド型WAF
クラウドサービスとして提供され、ハードウェアや仮想サーバなどを自前で用意する必要がないものです。CDN(Contents Delivery Network)機能を有しているものも多くあります。大きなメリットとして、自ネットワークの外側で防御してくれるため、悪意ある通信が自ネットワークの内側に到達しないという点です。またDoS/DDoS対策を標準搭載している場合が多く、大量のデータが自ネットワークに入る前に遮断されるため、正常な通信に与える影響を極小化することが出来ます。反面、クラウド型である以上サービスリソースは他の利用者と共用であり、他の利用者に対する通信によって通信圧迫が発生したり、サービス事業者の障害によって停止するリスクがあります。
バーチャルアプライアンス型WAF
自ネットワーク内のEC2上に構築するWAFです。クラウド型と比較して、自分の管理配下にあるためコントロールが効きます。また製品によってはクラウド型WAFより安価に利用可能です。ただ、EC2上にあるため、冗長化やスケールなどは自分で設定/設計する必要があります。また悪意ある通信がVPC内まで到達してしまうため、DoS/DDoSが発生した場合は他のサービスへ影響を与える可能性があります。
ホスト型WAF
Webアプリケーションが動いているサーバ自体にインストールして使うものです。冗長化やスケールなどは必要に応じてサーバの設計として取り入れられているため、EC2側WAFのように自分で設定/設計する必要がありません。アンチウイルス機能やIPS機能を組み込んでいるものも多く、サーバにインストールすればオールインワンでセキュリティを確保することが出来ます。デメリットとして、バーチャルアプライアンス型WAFと同様に、悪意ある通信がサーバまでに到達してしまうため、DoS/DDoSを防ぐことは出来ません。また攻撃防御のためのリソースはサーバ自身のCPU/メモリを使うため、サーバの負荷が高くなり、Webアプリケーションに影響を与える場合があります。
WAFの製品
クラウド型WAF
■ Imperva Incapsula
「データ・セキュリティ」に特化したソリューションを提供する米国の企業、Impervaが提供するクラウド型WAFがImperva Incapsulaです。CDNと一体となっているため、動的に拡張し、大規模なDDoS攻撃も阻止することが出来ます。ロードバランス及びフェイルオーバーの機能も有しています。Impervaは世界においても日本においてもトップシェアを持つWAF企業であり、実績が多いことも魅力の一つです。
■ AWS CloudFront + AWS WAF
AWSが提供するCloudFrontとAWS WAFの組み合わせです。CDNであるCloudFrontが動的拡張とDDoS対策を有しています。ただし、AWSのセキュリティ機能はまだまだ発展途上であり、高いセキュリティレベルを保つには現時点ではImperva ThreatRadarやTrend Micro Deep Securityと組み合わせる必要があります。
バーチャルアプライアンス型WAF
■ Barracuda WAF
Barracuda WAFは、米国企業Barracuda NetworksがAWS上で提供する、EC2上に構築するタイプのWAFです。Barracuda WAFはアプライアンス製品としては日本国内No.1のシェアを誇っており、オンプレミスのノウハウをそのままAWSで活かすことが出来ます。
■ Sophos UTM
コンピューターセキュリティを専門とする英国企業Sophosの統合脅威管理製品がSophos UTMです。ファイアウォール、Web通信防御、メール通信防御など様々な機能を持ち、その一つとしてWAF機能を有しています。またAWS対応にも力を入れており、AutoScalingの仕組みが公式で提供されています。
ホスト型WAF
■ Trend Micro Deep Security
東京に本社を置く日本企業トレンドマイクロが提供する、サーバにインストールするタイプの統合セキュリティ製品がTrend Micro Deep Securityです。アンチウイルス、ファイアウォール、IPS、変更監視、セキュリティログ監視の機能を有しており、IPSのルールの1つとしてWebアプリケーション防御(WAF)が提供されています。
WAFの選び方
求められるセキュリティレベルによって適材適所を選択します。場合によっては組み合わせる事も必要です。サービス事業者を全面的に信頼出来るのであれば、クラウド型WAFが最も導入の敷居も運用の負荷も低いですが、サービス事業者側で障害があった場合にはコントロールが効きません。サービスコントロールという意味ではバーチャルアプライアンス型WAFが最もコントロールが効きますが、反面導入コストと運用負担が大きくなりがちです。ホスト型WAFもネットワークを変更する必要がないため導入コストは低く抑えられますが、サーバ自体にスペックが要求されます。何を守りたくて、どこまで可用性を確保して、どこまでコストが掛けられるのかによって選びましょう。
最後に
今回はWAF入門として、基礎的な知識をまとめてみました。実際の導入設計や運用にはノウハウが必要なところもありますので、ぜひクラスメソッドにお声がけください!